import { _SuperTable } from '../../../config.js';
// =============================列表的通用更新方法=========================
// 当前页码（page），每页数量（pageSize），列表数据，数据总计，
export async function listUpdate(api, { filter, table, pager, proxy }, config) {
	const {
		fieldPage = 'pageNum',
			fieldPageSize = 'pageSize',
			fieldTotal = 'total',
			fieldDatas = 'list',
			defaultPage = 1,
			defaultPageSize = 10,
			defaultTotal = 0,
	} = config || _SuperTable;
	try {
		// 采集并记录分页的初始值，用于重置
		pager.defaultPage = defaultPage;
		pager.defaultPageSize = defaultPageSize;
		const { page = defaultPage, pageSize = defaultPageSize, ...o } = pager.values;
		const requestData = { ...filter.values, ...table.values, ...o };
		requestData[fieldPage] = page;
		requestData[fieldPageSize] = pageSize;
		// 自定义api函数，可灵活控制请求前后及参数传递
		const data = await api(requestData);
		proxy.datas = data?.[fieldDatas];
		proxy.total = Number(data?.[fieldTotal] || defaultTotal);
		proxy.currentPage = page;
	} catch (e) {
		console.error('列表数据异常：', e);
	}
}
// =============================无分页列表的更新方法========================
export async function tableUpdate(api, { filter, table, proxy }) {
	try {
		// 自定义api函数，可灵活控制请求前后及参数传递
		proxy.datas = await api({ ...filter.values, ...table.values });
	} catch (e) {
		console.error('列表数据异常：', e);
	}
}
